perm filename BSP.TEX[FTL,LSP] blob sn#805900 filedate 1985-09-27 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00014 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	% fonts
C00005 00003	% page layout
C00007 00004	% Tables of Contents
C00009 00005	% Index
C00011 00006	% Headers
C00014 00007	% Lists
C00017 00008	% Danger, Caution, and Warning paragraphs
C00018 00009	% screen text examples
C00020 00010	% notes
C00023 00011	% Fast Path
C00024 00012	% Figures
C00026 00013	% user guide chapter stuff
C00032 00014	% output routines
C00036 ENDMK
C⊗;
% fonts
\def\Font#1{\def\next{\fixfont#1}\afterassignment\next\font#1}
\def\fixfont#1{\fontdimen3#1=0pt\fontdimen4#1=0pt}


% press medium
\Font\prmseven	= amr7				% timesroman at 7pt	
\Font\prmeight	= amr8				% timesroman at 8pt
\Font\prmten	= amr10				% timesroman at 10pt
\Font\prmeleven	= amr10 scaled \magstephalf	% timesroman at 11pt
\Font\prmtwelve	= amr10 scaled \magstep1	% timesroman at 12pt

% press bold
\Font\prbnine	= ambx9				% timesromanb at 9pt
\Font\prbten	= ambx10			% timesromanb at 10pt
\Font\prbeleven	= ambx10 scaled \magstephalf	% timesromanb at 11pt
\Font\prbtwelve	= ambx10 scaled \magstep1	% timesromanb at 12pt
\Font\prbfourteen=ambx10 scaled \magstep2	% timesromanb at 14pt
\Font\prbsixteen= ambx9  scaled \magstep3	% timesromanb at 16pt
\Font\prbeighteen=ambx9  scaled \magstep4	% timesromanb at 18pt

% press italics
\Font\priten	= amti10			% timesromani at 10pt
\Font\prieleven	= amti10 scaled \magstephalf	% timesromani at 11pt

% press bold italics
\Font\prbiten	= ambl10			% timesromanbi at 10pt
\Font\prbieleven= ambl10 scaled \magstephalf	% timesromanbi at 11pt	

% letter gothic
\Font\lgseven	= amtt8
\Font\lgnine	= amtt9

% universe medium
\Font\unmeight	= helvetica at 8pt	

\def\tenpoint
{\let\rm\prmten
\let\bf\prbten
\let\it\priten
\let\bit\prbiten
\let\bbf\prbeleven
\baselineskip 11pt 
\rm
}

\def\elevenpoint
{\let\rm\prmeleven
\let\bf\prbeleven
\let\it\prieleven
\let\bit\prbieleven
\let\bbf\prbtwelve
\baselineskip 12pt 
\rm
}

\def\twelvepoint
{\let\rm\prmtwelve
\let\bf\prbtwelve
\baselineskip 13pt 
\rm
}
\let\normaltype=\elevenpoint
\normaltype
% page layout

\newskip \normalleftskip	\normalleftskip=10pc
\newskip \comleftskip		\comleftskip   = 6pc
\newskip \normalparskip		\normalparskip = 1pc

\vsize	  43pc	
\topskip   2pc
\hsize    40pc
\leftskip \normalleftskip
\rightskip 0pc plus 2pc
\parindent 0pc

\parskip \normalparskip

\def\nulldef{}
\let\NIS=\nointerlineskip
\def\NIPS{\NIS\parskip 0pc\relax}
\def\removedepth
{\ifdim \prevdepth>-1000pt \vskip -\prevdepth\fi}

\def\Vskip #1!{\endgraf
\removedepth
\ifdim \lastskip<#1 \ifdim \lastskip>0pc \removelastskip\fi \vskip#1\NIPS\fi}

\def\par{\ifvmode\else\endgraf
\removedepth
\NIS\parskip \normalparskip\relax\fi}

\let\normpar=\par

\let\fullline=\line

\newtoks \headline
\newtoks \footline
\countdef\pageno=0 \pageno=-1
\let\chapno = \nulldef
% Tables of Contents

\newwrite \tocfile
\openout \tocfile \jobname.toc

\def\dotleader{\leaders\hbox to10pt {\hfil.\hfil}\hfil}

{\obeylines
\gdef\Czero#1
{\Vskip1pc!\fullline{\hskip\normalleftskip\bbf #1\hfil}}
\gdef\Cone#1\!#2
{\Vskip1pc!\fullline{\hskip\normalleftskip\bbf #1\dotleader#2}}
\gdef\Ctwo#1\!#2
{\moveright\fullline{\hskip\normalleftskip\bf  #1\dotleader#2}}
\gdef\Cthree#1
{}
\global\let\Cfour\Cthree
\global\let\Pzero\Cthree
\global\let\Pone \Cthree
\gdef\Ptwo#1\!#2
{\fullline{\rm #1\dotleader#2}}
\gdef\Pthree#1\!#2
{\fullline{\hskip 1pc\rm #1\dotleader#2}}
\global\let\Pfour\Cthree
}

\def\marginstyle{\prmseven\vrule height6pt depth2pt width0pt}

\def\toc#1#2{\xdef\writeit{\write\tocfile{!#1#2!!\noexpand\pagenumber}}\writeit}
\toc4{}

\def\PTOC
{\HeadIV{CONTENTS}
{\let\0\Pzero\let\1\Pone\let\2\Ptwo\let\3\Pthree\let\4\Pfour
\obeylines\catcode`\!=0\relax\input\jobname.tc\relax}
\vfil\break
}
% Index

\newwrite \idxfile

\openout\idxfile \jobname.idx

\write\idxfile{}

\newinsert \idxins
\dimen\idxins=\maxdimen
\count\idxins=0
\skip\idxins = 0pt

\newif	\ifsilent
\newif	\ifbold

\let\indexb=b
\def\specialhat{\ifmmode\def\next{↑}\else\let\next\beginxref\fi\next}
\def\beginxref{\futurelet\next\silentswitch}
\def\silentswitch{\ifx\next\specialhat 
    \let\next\silentxref
    \else\silentfalse\let\next\contxref\fi
    \next}
\def\contxref{\futurelet\next\boldswitch}
\def\boldswitch
{\ifx \next\indexb
    \let\next\boldxref
    \else\boldfalse\let\next\xref\fi
    \next}
\catcode`\↑=\active \let ↑=\specialhat
\def\silentxref ↑{\silenttrue\contxref}
\def\boldxref   b{\boldtrue  \xref}

\def\xref
#1{\ifproofmode\insert\idxins{\hbox{\marginstyle\ifbold\llap{b }\fi#1}}\else
       \ifhmode\kern0pt\fi\fi
\ifbold\xdef\writeit{\write\idxfile{#1!1!\noexpand\pagenumber}}\else
       \xdef\writeit{\write\idxfile{#1!2!\noexpand\pagenumber}}\fi
\writeit
\ifsilent\ignorespaces\else#1\fi
}
% Headers

% note: Head Level 1 should appear only at the top of a page

\def\Head  #1{\setbox0=\fullline{\prbeighteen\hss#1}\ht0=0pc\vglue .5pc
\toc0{#1}\box0\Vskip 5pc!}
\def\HeadI #1{\setbox0=\fullline{\prbeighteen\hss#1}\ht0=0pc\vglue .5pc
\toc1{#1}\box0\Vskip 5pc!}
\def\HeadII #1{\Vskip  3pc!\toc2{#1}\fullline{\prbsixteen  #1\hss}\Vskip 2pc!}
\def\HeadIII#1{\Vskip  2pc!\toc3{#1}\fullline{\prbfourteen #1\hss}\Vskip 1pc!}
\def\HeadIV #1{\Vskip  2pc!\toc4{#1}\fullline{\prbtwelve   #1\hss}\Vskip 1pc!}
\def\HeadV  #1{\Vskip1.5pc!\fullline 
    {\hskip\comleftskip\prbeleven #1\hss}\Vskip 1pc!}

\def\altHeadII #1{\Vskip 3pc!\toc2{#1}\fullline
    {\prbsixteen\hskip \normalleftskip#1\hss}\Vskip 4pc!}
\def\altHeadIV #1{\Vskip 1pc!\toc4{#1}\fullline{\prbtwelve   #1\hss}\Vskip .5pc!}
% Lists
\newskip\iskip	\newskip\iiskip	\newskip\iiiskip
\newbox \firstcolbox	\newbox \othercolbox

\def\bull
{\ifmmode\bullet\else$\bullet$\fi}

\def\listlabel
#1{\noindent\hbox to 0pc{\hskip -1.5pc #1\hss}\ignorespaces}

\def\item
#1{\par\leftskip\iskip  \listlabel{#1}}
\def\itemitem
#1{\par\leftskip\iiskip \listlabel{#1}}
\def\itemitemitem
#1{\par\leftskip\iiiskip\listlabel{#1}}

\def\beginlist
{\begingroup\iiiskip=\leftskip
\advance\iiiskip 1.5pc\iskip  =\iiiskip 
\advance\iiiskip 1.5pc\iiskip =\iiiskip
\advance\iiiskip 1.5pc\relax
\Vskip 1pc!}

\def\endlist
{\par\endgroup\Vskip 1pc!}

\def\beginTwoColList
{\begingroup
\leftskip=0pc
\Vskip 2pc!}

\def\firstcolumn
{\hsize 19pc
\iskip  =1.5pc
\iiskip =3pc
\iiiskip=4.5pc
\setbox\firstcolbox=\vbox}

\def\secondcolumn
{\setbox\othercolbox=\vbox}

\def\endTwoColList
{\Vskip 1pc!
\dim0 = dp\firstcolbox	\dim2=-\dim0
\dim4 = dp\othercolbox	\dim6=-\dim4
\setbox0\vtop{\unvbox\firstcolbox}
\setbox2\vtop{\unvbox\othercolbox}
\advance\dim2 \dp0
\advance\dim6 \dp2
\ifdim \dim6>\dim2 \dim0=\dim4\fi
\wd0=19pc\wd2=19pc
\fullline{\box0\hskip2pc\box2}
\prevdepth=\dim0
\endgroup
\Vskip1pc!}
% Danger, Caution, and Warning paragraphs

\def\Danger{\begingroup \twelvepoint\bf
\def\par{\normpar\endgroup}
DANGER\hfil\break}

\def\Caution{\begingroup \twelvepoint\bf
\def\par{\normpar\endgroup}
CAUTION\hfil\break}

\def\Warning{\begingroup \twelvepoint\bf
\def\par{\normpar\endgroup}
Warning: }
% screen text examples

{\obeylines\gdef\eatcr#1
{\noindent}}

\chardef\bslash=`\\

\chardef\other=12
{\obeyspaces\global\let =\ }

\def\screen!{\Vskip \normalparskip!\begingroup
\baselineskip 10pt\lgnine
\parfillskip 0pt plus1fil
\parskip 0pt
\def\par{\leavevmode\endgraf}
\let\\=\bslash
\catcode`\{=\other
\catcode`\}=\other
\catcode`\$=\other
\catcode`\&=\other
\catcode`\#=\other
\catcode`\↑=\other
\catcode`\↓=\other
\catcode`\_=\other
\catcode`\~=\other
\catcode`\%=\other
\obeyspaces\obeylines\eatcr}

\def\endscreen!{\endgraf\endgroup\Vskip\normalparskip!}

\def\widescreen{\Vskip \normalparskip!\begingroup
\leftskip 0pc
\baselineskip 10pt\lgnine
\parfillskip 0pt plus1fil
\parskip 0pt
\def\par{\leavevmode\endgraf}
\let\\=\bslash
\catcode`\{=\other
\catcode`\}=\other
\catcode`\$=\other
\catcode`\&=\other
\catcode`\#=\other
\catcode`\↑=\other
\catcode`\↓=\other
\catcode`\_=\other
\catcode`\~=\other
\catcode`\%=\other
\obeyspaces\obeylines\eatcr}
% notes

\def\note{\Vskip 1pc!{\bf Note:} }

\def\longnote{\Vskip 1pc!\begingroup
\advance\leftskip 1.5pc
{\bf Note:} }

\def\notes{\Vskip 1pc!{\bf Notes:}\par\beginlist}

\let\endlongnote=\endlist
\let\endnotes   =\endlist
% Fast Path

\def\beginFastPath
#1{\begingroup
\endgraf
\def\FPname{#1}
\leftskip 1pc
\hsize 358pt
\global\setbox1=\vbox}

\def\endFastPath
{\Vskip1pc!\moveright 10pc
\vbox{\hbox to 30pc{\vrule height 1pt width 2pc\hskip.5pc\raise .5pt\vbox to 0pc
    {\vss\hbox{\prbtwelve \FPname}\vss}\hskip .5pc\leaders\hrule height 1pt\hfil}
\NIS\hbox{\vrule width 1pt\box1\vrule width 1pt}\NIS
\hrule height 1pt}
\endgroup
\Vskip1pc!}

\def\MDI{\Vskip2pc!\hbox{\prbfourteen More Detailed Information}\Vskip1pc!}
% Figures

%Syntax:  
%	\boxfig	(or \rulefig)	(or \fig)
%	{ } 
%	\caption{ }  
%	\endfig

\newwrite \figfile
\openout  \figfile \jobname.fig

\newif	\iffigrule
\newif	\iffigbox
\newcount\capno	\capno=1

\def\fig
{\figrulefalse\figboxfalse\global\setbox1=\vbox}
\def\finishfig
{}

\def\rulefig
{\figruletrue\figboxfalse\global\setbox1=\vbox}
\def\finishrulefig
{}

\def\boxfig
{\figrulefalse\figboxtrue
\begingroup
\advance\hsize by -\leftskip\advance\hsize -\rightskip
\advance\hsize -2pt
\leftskip 6pt\global\setbox1=\vbox}

\def\finishboxfig
{\wd1=\hsize
\endgroup
\Vskip1pc!
\moveright\leftskip\vbox{\hrule height1pt
\hbox{\vrule width 1pt 
    \vbox{\hrule height0pt width \wd1\vskip1pc\unvbox1\Vskip1pc!}\vrule width 1pt}
\NIS\hrule height1pt}
\Vskip1pc!
\ifx\captext\nulldef
\else\moveright\leftskip\makecapline\Vskip1pc!\global\let\captext\nulldef\fi
}

\def\endfig
{\iffigrule\finishrulefig
\else\iffigbox\finishboxfig
\else\finishfig
\fi\fi}

\def\caption#1{\gdef\captext{Figure \chapno--\the\capno. #1}}

\let\captext=\nulldef

\def\makecapline
{\hbox{\prbnine \captext}\figlist2\advance\capno 1\relax}

\def\figlist
#1{\xdef\writeit{\write\figfile{!#1\captext!!\noexpand\pagenumber}}\writeit}

\figlist4
% user guide chapter stuff

\def\beginChapter
#1.#2#3{\pageno=1\capno=1\relax
\def\chapno{#1}\def\chapline{#3}\let\comline\nulldef
\HeadI{Chapter #1. #2}
\vfil\break
\normaltype
\PTOC
}

\def\beginIntro
{\leftskip \normalleftskip
\altHeadII{About This Chapter}}

\def\beginSection
#1{\HeadII{#1}}

\def\beginSubsection
#1{\HeadIII{#1}}

\def\beginsubsubsection
#1{\HeadIV{#1}}

\def\begincom
#1{\def\comline{\lowercase{#1}}
\comfirsttrue
\leftskip \comleftskip
\HeadII{#1}
\hrule height 1pt
\parskip \normalparskip
\vbox to 0pc{}
}

\def\endIntro{\ifdim \pagetotal>0pc \vfil\break\fi}
\let\endSection=\endIntro
\let\endSubsection\nulldef
\let\endsubsubsection\nulldef
\let\endcom=\endSection
\def\endChapter{\endSection\ifodd\pageno\else\let\comline\nulldef\vfil\break\fi}

\def\label
#1:{\noindent\hbox to 0pc{\bf\hskip-6pc#1:\hss}\ignorespaces}
% output routines

\newif \iffooter	% if there a footer
\newif \ifticks		% positioning lines for output
\newif \ifcomfirst	% header in command chapter
\newif \ifproofmode	% exhibit index entries

\def\bspout#1{\shipout\vbox
{\offinterlineskip
\ifticks\topticks\fi
\makeheadline
\makepagerule
\listindex
\vbox to 45pc {#1\vss\makefootline}
\ifticks\botticks\fi}
\advancepageno
\global\comfirstfalse
}

\def\makepagerule{\hrule height1.5pt width \hsize}

\def\makeheadline{\setbox0=\fullline{\the\headline}\ht0=1pc\dp0=4.5pt\box0}
\headline={\prbfourteen\ifcomfirst\else
\ifodd\pageno\hss\comline\else\comline\hss\fi\fi}

\def\makefootline{\iffooter\setbox0=\fullline{\the\footline}\dp0=.5pc\box0\fi}
\footline={\normaltype
\ifodd\pageno\hss\chapline\ \ \folio\else\folio\ \ \bookline\hss\fi}

\def\folio{{\bf\pagenumber}}
\def\pagenumber{\ifnum\pageno>0 \chapno--\the\pageno\else\romannumeral-\pageno\fi}

\def\listindex
{\ifvoid\idxins\else\rlap{\kern41pc\vbox to 0pc{\kern4pt\unvbox\idxins\vss}}\fi}

\def\advancepageno{\ifnum\pageno<0 \global\advance\pageno -1
  \else\global\advance\pageno 1\fi} % increase |pageno|

\def\normalpage{\unvbox255\relax}
\output{\bspout\normalpage}

\def\topticks{\setbox0=\fullline{\hskip-1pc\vrule height .2pt width 1pc\relax
\hskip -.2pt\vrule height 1pc width .2pt\hfil
\vrule height 1pc width .2pt\hskip -.2pt\relax
\vrule height .2pt width 1pc\hskip -1pc}\ht0=0pc\box0}

\def\botticks{\setbox0=\fullline{\hskip-1pc\vrule height 0pt depth .2pt width 1pc\relax
\hskip -.2pt\vrule height 0pt depth 1pc width .2pt\hfil
\vrule height 0pt depth 1pc width .2pt\hskip -.2pt\relax
\vrule height 0pt depth .2pt width 1pc\hskip -1pc}\dp0=0pc\box0}

\def\pageticks{\tickstrue}
\def\nopageticks{\ticksfalse}
\def\footers{\footertrue}
\def\nofooters{\footerfalse}

\let\comline \nulldef	\let\bookline\nulldef	\let\chapline\nulldef
\footers	
\pageticks
\proofmodetrue